Fair Synchronization
نویسنده
چکیده
Most published concurrent data structures which avoid locking do not provide any fairness guarantees. That is, they allow processes to access a data structure and complete their operations arbitrarily many times before some other trying process can complete a single operation. Such a behavior can be prevented by enforcing fairness. However, fairness requires waiting or helping. Helping techniques are often complex and memory consuming. Does it mean that for enforcing fairness it is best to use locks? The answer is negative. We show that it is possible to automatically transfer any non-blocking or wait-free data structure into a similar data structure which satisfies a strong fairness requirement, without using locks and with limited waiting. The fairness we require is that no beginning process can complete two operations on a given resource while some other process is kept waiting on the same resource. Our approach allows as many processes as possible to access a shared resource at the same time as long as fairness is preserved. To achieve this goal, we introduce and solve a new synchronization problem, called fair synchronization. Solving the new problem enables us to add fairness to existing implementations of concurrent data structures, and to transform any solution to the mutual exclusion problem into a fair solution.
منابع مشابه
Media Synchronization Quality of Packet Scheduling Algorithms∗∗
This paper studies effect of packet scheduling algorithms at routers on media synchronization quality in live audio and video transmission by experiment. In the experiment, we deal with four packet scheduling algorithms: First-In FirstOut, Priority Queueing, Class-Based Queueing and Weighted Fair Queueing. We assess the synchronization quality of both intra-stream and inter-stream with and with...
متن کاملDebugging Scheme Fair Threads
There are two main policies for scheduling thread-based concurrent programs: preemptive scheduling and cooperative scheduling. The former is known to be difficult to debug, because it is usually non-deterministic and can lead to data races or difficult thread synchronization. We believe the latter is a better model when it comes to debugging programs. In this paper, we discuss the debugging of ...
متن کاملSynchronization Issues in Real Time Systems
Real time systems must accomplish executive and application tasks within speci ed timing constraints In distributed real time systems the mechanisms that ensure fair access to shared resources achieve consistent deadlines meet timing or precedence constraints and avoid dead locks all utilize the notion of a common system wide time base A synchronization primitive is essential in meeting the dem...
متن کاملA Constant Complexity Fair Scheduler with O(log N) Delay Guarantee
Many Internet multimedia applications require the support of network services with fairness and delay guarantees. Currently, there are two types of fair schedulers in the literature. The time stamp based schedulers achieve good fairness and delay guarantees but have high O(log N) time complexity, where N is the number of incoming flows. While the round robin based schedulers reach O(1) complexi...
متن کاملFair Exchange with Guardian Angels
In this paper we propose a new probabilistic Fair Exchange Protocol which requires no central Trusted Third Party. Instead, it relies on a virtually distributed and decentralized Trusted Third Party which is formalized as a Guardian Angel: a kind of Observer e.g. a tamper proof security device. We thus introduce a network model with Pirates and Guardian Angels which is well suited for Ad Hoc ne...
متن کامل